package hcn.response.bean;

import lombok.ToString;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.List;

/**
 * @program: 3.4.02
 * @description: 病历质控整改信息查询
 * @author: zangsf
 * @create: 2021-08-29 22:12
 **/
@ToString
@XmlRootElement(name = "BSXml")
public class CaseInfoRemindChangeRepHisBean implements Serializable {
    private MsgHeader msgHeader;
    private MsgBody msgBody;

    @XmlElement(name = "MsgHeader")
    public MsgHeader getMsgHeader() {
        return msgHeader;
    }

    public void setMsgHeader(MsgHeader msgHeader) {
        this.msgHeader = msgHeader;
    }

    @XmlElement(name = "MsgBody")
    public MsgBody getMsgBody() {
        return msgBody;
    }

    public void setMsgBody(MsgBody msgBody) {
        this.msgBody = msgBody;
    }

    @ToString
    @XmlRootElement(name = "MsgHeader")
    public static class MsgHeader {
        private String organization;
        private String sender;
        private String serviceType;
        private String msgType;
        private String msgVersion = "2.0";

        @XmlElement(name = "Organization")
        public String getOrganization() {
            return organization;
        }

        public void setOrganization(String organization) {
            this.organization = organization;
        }

        @XmlElement(name = "Sender")
        public String getSender() {
            return sender;
        }

        public void setSender(String sender) {
            this.sender = sender;
        }

        @XmlElement(name = "ServiceType")
        public String getServiceType() {
            return serviceType;
        }

        public void setServiceType(String serviceType) {
            this.serviceType = serviceType;
        }

        @XmlElement(name = "MsgType")
        public String getMsgType() {
            return msgType;
        }

        public void setMsgType(String msgType) {
            this.msgType = msgType;
        }

        @XmlElement(name = "MsgVersion")
        public String getMsgVersion() {
            return msgVersion;
        }

        public void setMsgVersion(String msgVersion) {
            this.msgVersion = msgVersion;
        }
    }

    @ToString
    @XmlRootElement(name = "MsgBody")
    public static class MsgBody {
        private String status;
        private String code;
        private String detail;
        private CaseInfoRemind data;

        @XmlElement(name = "Status")
        public String getStatus() {
            return status;
        }

        public void setStatus(String status) {
            this.status = status;
        }

        @XmlElement(name = "Code")
        public String getCode() {
            return code;
        }

        public void setCode(String code) {
            this.code = code;
        }

        @XmlElement(name = "Detail")
        public String getDetail() {
            return detail;
        }

        public void setDetail(String detail) {
            this.detail = detail;
        }

        @XmlElement(name = "Data")
        public CaseInfoRemind getData() {
            return data;
        }

        public void setData(CaseInfoRemind data) {
            this.data = data;
        }
    }

    @ToString
    @XmlRootElement(name = "Data")
    public static class CaseInfoRemind {
        private CaseInfoRemindData request;

        @XmlElement(name = "RequestList")
        public CaseInfoRemindData getRequest() {
            return request;
        }

        public void setRequest(CaseInfoRemindData request) {
            this.request = request;
        }
    }

    @ToString
    @XmlRootElement(name = "RequestList")
    public static class CaseInfoRemindData {
        private String visitId;                         //住院号
        private String hospizationId;                   //住院号码
        private String sourcePatientId;                     //业务系统患者档案ID
        private List<RectificationList> rectificationLists; //整改信息列表

        @XmlElement(name = "VisitId")
        public String getVisitId() {
            return visitId;
        }

        public void setVisitId(String visitId) {
            this.visitId = visitId;
        }

        @XmlElement(name = "HospizationId")
        public String getHospizationId() {
            return hospizationId;
        }

        public void setHospizationId(String hospizationId) {
            this.hospizationId = hospizationId;
        }

        @XmlElement(name = "SourcePatientId")
        public String getSourcePatientId() {
            return sourcePatientId;
        }

        public void setSourcePatientId(String sourcePatientId) {
            this.sourcePatientId = sourcePatientId;
        }

        @XmlElementWrapper(name = "RectificationLists")
        @XmlElement(name = "RectificationList")
        public List<RectificationList> getRectificationLists() {
            return rectificationLists;
        }

        public void setRectificationLists(List<RectificationList> rectificationLists) {
            this.rectificationLists = rectificationLists;
        }
    }

    @ToString
    @XmlRootElement(name = "RectificationList")
    public static class RectificationList {
        private String medicalRecordId;                     //病历编号
        private String medicalRecordName;                   //病历名称
        private String noticeDateTime;                  //通知时间
        private String endTime;                         //截止时间
        private List<RectificationItemList> rectificationItemLists;//整改项目

        @XmlElement(name = "MedicalRecordId")
        public String getMedicalRecordId() {
            return medicalRecordId;
        }

        public void setMedicalRecordId(String medicalRecordId) {
            this.medicalRecordId = medicalRecordId;
        }

        @XmlElement(name = "MedicalRecordName")
        public String getMedicalRecordName() {
            return medicalRecordName;
        }

        public void setMedicalRecordName(String medicalRecordName) {
            this.medicalRecordName = medicalRecordName;
        }

        @XmlElement(name = "NoticeDateTime")
        public String getNoticeDateTime() {
            return noticeDateTime;
        }

        public void setNoticeDateTime(String noticeDateTime) {
            this.noticeDateTime = noticeDateTime;
        }

        @XmlElement(name = "EndTime")
        public String getEndTime() {
            return endTime;
        }

        public void setEndTime(String endTime) {
            this.endTime = endTime;
        }

        @XmlElementWrapper(name = "RectificationItemLists")
        @XmlElement(name = "RectificationItemList")
        public List<RectificationItemList> getRectificationItemLists() {
            return rectificationItemLists;
        }

        public void setRectificationItemLists(List<RectificationItemList> rectificationItemLists) {
            this.rectificationItemLists = rectificationItemLists;
        }

        @ToString
        @XmlRootElement(name = "RectificationItemList")
        public static class RectificationItemList {
            private String rectificationItemName;      //整改项目名称
            private String rectificationItemRemark;    //整改项目备注
            private String rectificationItemNotice;    //整改项目备注
            private String rectificationItemId;    //整改项目备注

            @XmlElement(name = "RectificationItemName")
            public String getRectificationItemName() {
                return rectificationItemName;
            }

            public void setRectificationItemName(String rectificationItemName) {
                this.rectificationItemName = rectificationItemName;
            }

            @XmlElement(name = "RectificationItemRemark")
            public String getRectificationItemRemark() {
                return rectificationItemRemark;
            }

            public void setRectificationItemRemark(String rectificationItemRemark) {
                this.rectificationItemRemark = rectificationItemRemark;
            }

            @XmlElement(name = "RectificationItemNotice")
            public String getRectificationItemNotice() {
                return rectificationItemNotice;
            }

            public void setRectificationItemNotice(String rectificationItemNotice) {
                this.rectificationItemNotice = rectificationItemNotice;
            }

            @XmlElement(name = "RectificationItemId")
            public String getRectificationItemId() {
                return rectificationItemId;
            }

            public void setRectificationItemId(String rectificationItemId) {
                this.rectificationItemId = rectificationItemId;
            }
        }
    }
}
